#模块 使用import 导入
#如果我们想从模块中导入所有的内容，则可以使用* from math import *



#导入模块得带前缀工作
import math
from math import pi,cos
from math import *
x=math.cos(2*math.pi)
print(x)

#部分导入，可以去除前缀
print(pi,cos(2*math.pi))

#查看模块包含的内容以及文档，导入模块后，可以使用dir函数列出其提供的符号
print(dir(math))
#使用help函数我们可以得到每个函数的描述
help(math.log)
#import 动作：
# 1，查找模块文件  1.程序主目录 2.pythonpath目录 3.标准库目录 4任何.pth文件的内容5，第三方扩
# 展程序site-packages的主目录（例如/usr/lib/python3/site-packages），
# 2，编译位字节码
# 3，运行代码创建其定义的对象

#写模块 python中的模块只是扩展名位.py的python文件，模块的名称是文件的名称。python模块可以具有一组定义和实现
#的函数，类或者变量
# mygame/
# mygame/game.py
# mygame/draw.py

#模块的初始化第一次将模块加载到正在运行的python脚本中时，几个模块多次导入同一个模块，那个被加载的模块只能加载一次，里面的变量只会被初始化一次

#包 就是一个或者多个py文件构成的文件夹，然后带一个__init__.py的文件。这个文件可以为空，但是一定要有
#__init__文件可以通过__all__变量来确定软件包将哪些模块导出为阿皮，同时其他模块保留在内部
# __init__.py:
# __all__=["bar"],只导出barapi，其他都不能用

#模块，将类单独保存到文件的时候,称该文件为模块，模块以小写名称保存，类以大写字母开头


